@@ -57,10 +57,11 @@ module DryRunnable |
||
57 | 57 |
logger.log(sev, message) |
58 | 58 |
end |
59 | 59 |
|
60 |
- def create_event(event_hash) |
|
60 |
+ def create_event(event) |
|
61 | 61 |
if can_create_events? |
62 |
- @dry_run_results[:events] << event_hash[:payload] |
|
63 |
- events.build({ user: user, expires_at: new_event_expiration_date }.merge(event_hash)) |
|
62 |
+ event = build_event(event) |
|
63 |
+ @dry_run_results[:events] << event.payload |
|
64 |
+ event |
|
64 | 65 |
else |
65 | 66 |
error "This Agent cannot create events!" |
66 | 67 |
end |
@@ -66,9 +66,11 @@ module SortableEvents |
||
66 | 66 |
end |
67 | 67 |
end |
68 | 68 |
|
69 |
- def create_event(attrs) |
|
69 |
+ def create_event(event) |
|
70 | 70 |
if @sortable_events |
71 |
- @sortable_events << events.build({ user: user }.merge(attrs)) |
|
71 |
+ event = build_event(event) |
|
72 |
+ @sortable_events << event |
|
73 |
+ event |
|
72 | 74 |
else |
73 | 75 |
super |
74 | 76 |
end |
@@ -82,8 +84,7 @@ module SortableEvents |
||
82 | 84 |
ensure |
83 | 85 |
events, @sortable_events = @sortable_events, nil |
84 | 86 |
sort_events(events).each do |event| |
85 |
- event.expires_at ||= new_event_expiration_date |
|
86 |
- event.save! |
|
87 |
+ create_event(event) |
|
87 | 88 |
end |
88 | 89 |
end |
89 | 90 |
end |
@@ -105,12 +105,18 @@ class Agent < ActiveRecord::Base |
||
105 | 105 |
raise "Implement me in your subclass" |
106 | 106 |
end |
107 | 107 |
|
108 |
- def create_event(attrs) |
|
108 |
+ def build_event(event) |
|
109 |
+ event = events.build(event) if event.is_a?(Hash) |
|
110 |
+ event.user = user |
|
111 |
+ event.expires_at ||= new_event_expiration_date |
|
112 |
+ event |
|
113 |
+ end |
|
114 |
+ |
|
115 |
+ def create_event(event) |
|
109 | 116 |
if can_create_events? |
110 |
- events.create!({ |
|
111 |
- :user => user, |
|
112 |
- :expires_at => new_event_expiration_date |
|
113 |
- }.merge(attrs)) |
|
117 |
+ event = build_event(event) |
|
118 |
+ event.save! |
|
119 |
+ event |
|
114 | 120 |
else |
115 | 121 |
error "This Agent cannot create events!" |
116 | 122 |
end |